The widespread availability of the Internet has lead to an explosion of available information. For example, a search for information may turn up a very large number of possible hits. Another result of the widespread availability of the Internet is that any company in the world can easily become a global company by posting information on a website. While this is advantageous as it presents a large number of choices to consumers, the sheer number of choices can make it difficult for an individual. Research suggests that if the number of choices increases beyond a certain point, consumers become paralyzed trying to decide between the various choices. For example, an individual searching for a class of product, such as a portable media player, would discover a large number of possible choices, each with certain advantages and disadvantages. Trying to decide which set of advantages and disadvantages is the best fit for the individual may be difficult. Therefore, to aid in these areas, collaborative filtering may be used.
Collaborative filtering can predict what is a close match to an active user's request for information based on results or ratings of similar requests by like-minded users. The basic idea is that the active user will prefer those items that like-minded people prefer, or that dissimilar people do not prefer.
Two basic types of algorithms for collaborative filtering have been studied: memory-based and model-based. Memory-based algorithms compare an active user to the entire database of users to identify the top K most similar users to the active user from a database in terms of the rating patterns. Once the top K users are determined, the ratings of the K users may be used to provide a recommendation for the active user.
Unlike memory-based approaches, model-based approaches group different users in the database into a small number of classes based on their rating patterns. In order to predict the rating for an active user on an item of interest, these approaches first categorize the active user into one or more of the predefined user classes and then use the rating of the predefined user classes to determine a prediction for the item of interest.
While these basic approaches have been somewhat effective, improved methods of collaborative filtering would be beneficial.